package plugins.schoolcard;

import kd.bos.base.AbstractBasePlugIn;
import kd.bos.bill.BillShowParameter;
import kd.bos.cache.CacheFactory;
import kd.bos.cache.DistributeSessionlessCache;
import kd.bos.form.CloseCallBack;
import kd.bos.form.ShowType;
import kd.bos.form.control.Toolbar;
import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.list.ListShowParameter;
import kd.sdk.plugin.Plugin;

import java.util.EventObject;

/**
 * 基础资料插件
 */
public class toHistory extends AbstractBasePlugIn implements Plugin {

    @Override
    public void registerListener(EventObject e) {
        super.registerListener(e);
        Toolbar toolbar = this.getControl("tbmain");
        toolbar.addItemClickListener(this);
    }

    @Override
    public void itemClick(ItemClickEvent evt) {
        super.itemClick(evt);
        String itemKey = evt.getItemKey();

        if ("dcb4_charge".equals(itemKey)) {
            // 使用分布式无会话缓存
            DistributeSessionlessCache cache = CacheFactory.getCommonCacheFactory().getDistributeSessionlessCache("customRegion");

            // 缓存操作
            String numberValue = (String) this.getModel().getValue("number");
            cache.put("schoolcardnumber-toHistory", numberValue);
            cache.put("Modeltag", "charge");

            OpenHistory();
        } else if ("dcb4_spend".equals(itemKey)) {
            // 使用分布式无会话缓存
            DistributeSessionlessCache cache = CacheFactory.getCommonCacheFactory().getDistributeSessionlessCache("customRegion");

            // 缓存操作
            String numberValue = (String) this.getModel().getValue("number");
            cache.put("schoolcardnumber-toHistory", numberValue);
            cache.put("Modeltag", "spend");

            OpenHistory();
        }


    }

    public void OpenHistory() {
        // 跳转到目标单据（模态框）
        ListShowParameter showParameter = new ListShowParameter();
        showParameter.setFormId("bos_list"); // 固定的
        showParameter.setBillFormId("dcb4_cardhistory"); // 列表对应的单据字段
        showParameter.getOpenStyle().setShowType(ShowType.Modal); // 打开风格，有非常多种
        this.getView().showForm(showParameter);
    }
}